// 初始化查询信息
var machineUid = "";
// 初始化分页参数
var currPage = 1;// 当前页
var totalPage = 1;// 总页数
var offset = 0;// 起始条数
var limit = 5; // 显示条数 5条

var regIllegle = new RegExp("[^a-zA-Z0-9\_\u4e00-\u9fa5]");// 非法字符验证

// 新增按钮添加监听
$("#btnInsert").click(function() {
    // 清空内容
    $("#insertMachineUid").val("");
    $("#insertMachinePwd").val("");
    // 窗口显示
    $("#dialogInsert").modal('show', 'fit');
})


// 重置按钮添加监听
$("#btnReset").click(function(){
    // 清空内容
    $("#machineUid").val("");
})


// 把信息放入表格中的方法
function addMachineInfoToTable(arr){
    for(var i=0;i<arr.length;i++){
        var num = offset+i+1;
        var tr = `
		<tr>
			<td>${num}</td>
			<td>${arr[i].machineUid}</td>
			<td>${arr[i].machinePwd}</td>
			<td>
				<button class="btn btn-link icon icon-times" type="button" machineId="${arr[i].machineId}" onclick="deleteMachineInfo(this)">删除</button>
				<button class="btn btn-link icon icon-edit" type="button" machineId="${arr[i].machineId}" onclick="showUpdateDialog(this)">修改</button>
			</td>		
		</tr>		
		`;
        $("#tbody").append(tr);

    }

}

// 获取信息的方法
function searchMachineInfo(){
    layer.load(2); // 加载样式
    // 发送请求
    $.ajax({
        url:"searchMachineInfoByPage.do",
        type:"POST",
        dataType:"JSON",
        data:{
            machineUid:machineUid,
            limit:limit,
            offset:offset
        },
        success:function(data){
            layer.closeAll('loading'); // 关闭加载样式
            $("#tbody").html("");// 清空表格
            count = data.datas.count; // 获取记录数量
            // 计算分页
            if (count == 0) {
                // 没有信息就不调用添加方法
                totalPage = 1;
                layer.msg("未查询到相关收银机信息！");
            } else {
                totalPage = count % limit == 0 ? (count / limit) : (parseInt(count / limit + 1));
                var machineInfoList = data.datas.machineInfoList; // 获取信息
                addMachineInfoToTable(machineInfoList);
            }
            // 显示页码
            $("#page").html(currPage + "/" + totalPage);
        },
        error:function(err){
            layer.closeAll('loading'); // 关闭加载样式
        }
    })

}

// 查询按钮添加监听
$("#btnSearch").click(function() {
    // 初始化分页参数
    offset = 0; //记录起始位置
    count = 0; // 记录数
    limit = 5; // 显示条数
    currPage = 1; // 当前页
    totalPage = 1; // 总页数
    // 获取参数
    machineUid = $("#machineUid").val();
    // 调用查询
    searchMachineInfo();
});

// 上一页按钮添加监听
$("#btnPrevPage").click(function() {
    // 判断当前页位置
    if (currPage == 1) {
        layer.msg("已经到首页啦！");
    } else {
        currPage--;
        offset = (currPage - 1) * limit;
        // 调用查询
        searchMachineInfo();
    }
});

// 下一页按钮添加监听
$("#btnNextPage").click(function() {
    // 判断当前页位置
    if (currPage == totalPage) {
        layer.msg("已经到尾页啦！");
    } else {
        currPage++;
        offset = (currPage - 1) * limit;
        // 调用查询
        searchMachineInfo();
    }
});


// 修改窗口弹出的方法
function showUpdateDialog(obj){
    // 获取当前参数id
    var machineId = obj.getAttribute("machineId");
    layer.load(2); // 加载样式
    // 发送请求
    $.ajax({
        url:"searchMachineInfoById.do",
        type:"POST",
        dataType:"JSON",
        data:{
            machineId:machineId
        },
        success:function(data){
            layer.closeAll('loading'); // 关闭加载样式
            var machineInfo = data.datas.machineInfo;
            // 修改 修改窗口内容
            $("#updateMachineUid").val(machineInfo.machineUid);
            $("#updateMachinePwd").val(machineInfo.machinePwd);
            // 保存按钮添加属性
            $("#btnUpdateSubmit").attr("machineId",machineInfo.machineId);
            // 显示窗口
            $("#dialogUpdate").modal('show', 'fit');
        },
        error:function(err){
            layer.closeAll('loading'); // 关闭加载样式
        }
    })
}


// 新增参数的方法
function insertMachineInfo(){

    // 获取参数
    var machineUid = $("#insertMachineUid").val();
    var machinePwd = $("#insertMachinePwd").val();
    // 判断参数
    if(machineUid.trim()==""||machinePwd.trim()==""){
        layer.msg("收银机信息填写不完整！");
        return;
    }
    // 验证非法字符
    if(regIllegle.test(machineUid)||regIllegle.test(machinePwd)){
        layer.msg("含有非法字符！");
        return;
    }

    layer.confirm("您确定要新增该收银机信息吗？", {
            btn: ["确定", "取消"],
            icon: 0
        },
        // 确定的方法
        function() {
            layer.load(2); // 加载样式
            // 发送请求
            $.ajax({
                url:"insertMachineInfo.do",
                type:"POST",
                dataType:"JSON",
                data:{
                    machineUid:machineUid,
                    machinePwd:machinePwd
                },
                success:function(data){
                    layer.closeAll('loading'); // 关闭加载样式
                    if (data.id == 0) {
                        // 操作成功
                        layer.msg(data.msg,{
                            icon:1,
                            time:1000
                        });
                        // 窗口关闭
                        $("#dialogInsert").modal('hide', 'fit');
                        // 刷新
                        searchMachineInfo();
                    } else {
                        // 操作失败
                        layer.msg(data.msg,{
                            icon:2,
                            time:1000
                        });
                    }
                },
                error:function(err){
                    layer.closeAll('loading'); // 关闭加载样式
                }
            })
        });

}

// 新增窗口保存按钮添加监听
$("#btnInsertSubmit").click(insertMachineInfo);


// 修改参数的方法
function updateMachineInfo(){
    // 获取参数
    var machineId = $("#btnUpdateSubmit").attr("MachineId");
    var machineUid = $("#updateMachineUid").val();
    var machinePwd = $("#updateMachinePwd").val();
    // 判断参数
    if(machineUid.trim()==""||machinePwd.trim()==""){
        layer.msg("菜品信息填写不完整！");
        return;
    }
    // 验证非法字符
    if(regIllegle.test(machineUid)||regIllegle.test(machinePwd)){
        layer.msg("含有非法字符！");
        return;
    }

    layer.confirm("您确定要修改该收银机信息吗？", {
            btn: ["确定", "取消"],
            icon: 0
        },
        // 确定的方法
        function() {
            layer.load(2); // 加载样式
            // 发送请求
            $.ajax({
                url:"updateMachineInfo.do",
                type:"POST",
                dataType:"JSON",
                data:{
                    machineId:machineId,
                    machineUid:machineUid,
                    machinePwd:machinePwd
                },
                success:function(data){
                    layer.closeAll('loading'); // 关闭加载样式
                    if (data.id == 0) {
                        // 操作成功
                        layer.msg(data.msg,{
                            icon:1,
                            time:1000
                        });
                        // 窗口关闭
                        $("#dialogUpdate").modal('hide', 'fit');
                        // 刷新
                        searchMachineInfo();
                    } else {
                        // 操作失败
                        layer.msg(data.msg,{
                            icon:2,
                            time:1000
                        });
                    }
                },
                error:function(err){
                    layer.closeAll('loading'); // 关闭加载样式
                }
            })
        });

}

// 修改窗口保存按钮添加监听
$("#btnUpdateSubmit").click(updateMachineInfo);

// 删除方法
function deleteMachineInfo(obj){
    // 获取参数
    var machineId = obj.getAttribute("machineId");
    layer.confirm("是否确认删除该收银机信息？", {
            btn: ["确定", "取消"],
            icon: 0
        },
        // 确定的方法
        function() {
            layer.load(2); // 加载样式
            // 发送请求
            $.ajax({
                url:"deleteMachineInfoById.do",
                type:"POST",
                dataType:"JSON",
                data:{
                    machineId:machineId
                },
                success:function(data){
                    layer.closeAll('loading'); // 关闭加载样式
                    if (data.id == 0) {
                        // 操作成功
                        layer.msg(data.msg,{
                            icon:1,
                            time:1000
                        });
                        // 窗口关闭
                        $("#dialogUpdate").modal('hide', 'fit');
                        // 刷新
                        searchMachineInfo();
                    } else {
                        // 操作失败
                        layer.msg(data.msg,{
                            icon:2,
                            time:1000
                        });
                    }
                },
                error:function(err){
                    layer.closeAll('loading'); // 关闭加载样式
                }
            })
        });

}

// 初始化查询
searchMachineInfo();